; file or matchtext is used to match filename (none = *.*)
; if a 1/2/3/4 letter extension is given, that exact extension must be matched
; -e means to match exact filename -f means that exact file if exists
; otherwise name is surrounded by *, spaces become *, and _ and - become ?
; -a means to add to current filelist if any, else filelist is reset; -n = remain minimized
; s = recent sends, g = recent gets, d = default d/l dir, m = mp2/3s, w = waves, i = midis, l = logs, c = mircdir, p = p&pdir, r = recent files, x = incompletes, z = custom sound
find {
if (3.1 isin $os) _error Sorry, Express File Finder does not work properly on Windows 3.11
aline %col.cust @Click Select one option per column to design your text style. %col.custdark $+ Patterns override colors.
aline %col.cust @Click Then press %col.custdark $+ F6 again to %col.custdark $+ style the text in the editbox of the current window.
aline %col.cust @Click Press %col.custdark $+ ShiftF6 instead to use this style for %col.custdark $+ ALL future text until disabled.
aline %col.cust @Click Press %col.custdark $+ CtrlF6 to %col.custdark $+ reset these settings to normal and %col.custdark $+ disable any %col.custdark $+ ShiftF6.
if (%cnc.backw == 2) set %.cnc.do $backwardsi(%.cnc.do)
elseif (%cnc.backw == 3) set %.cnc.do $backwordsi(%.cnc.do)
elseif (%cnc.backw == 4) set %.cnc.do $backwardsi($backwordsi(%.cnc.do))
if (%cnc.text == 2) set %.cnc.do $uvoweli(%.cnc.do)
elseif (%cnc.text == 3) set %.cnc.do $lvoweli(%.cnc.do)
elseif (%cnc.text == 4) set %.cnc.do $asciii(%.cnc.do)
elseif (%cnc.text == 5) set %.cnc.do $randcapi(%.cnc.do)
elseif (%cnc.text == 6) set %.cnc.do $altcapi(%.cnc.do)
elseif (%cnc.text == 7) set %.cnc.do $initcapi(%.cnc.do)
set %.cnc.bk $_j(%cnc.bk)
if (%.cnc.bk < 1) {
if ((%cnc.patt < 3) || (%cnc.patt == 8)) set %.cnc.bk $colour(back)
else set %.cnc.bk $gettok(0-0-0-0-1-0-0-0-1-0-0,%cnc.patt,45)
}
if (%.cnc.bk < 1) set %.cnc.bk 16
set %.cnc.fg $_j(%cnc.fg)
if (%.cnc.fg < 1) {
if ((%cnc.patt < 3) || (%cnc.patt == 8)) set %.cnc.fg $colour(norm)
else set %.cnc.fg $gettok(0-0-0-0-0-8-0-1-0-1-0,%cnc.patt,45)
}
if (%.cnc.fg < 1) set %.cnc.fg 16
set %.cnc.match 16-4-7-8-9-10-11-13-14-15,16-3-4-7-8-9-10-11-13-15,16-1-2-5-6-8-9-11-12-15,16-1-2-5-6-8-9-11-12-15,16-3-4-7-8-9-10-11-13-15,16-1-2-4-7-8-9-11-13-15,16-1-2-5-6-8-9-11-12-15,1-2-3-4-5-6-10-12-13-14,1-2-3-4-5-6-10-12-13-14,16-1-2-5-6-8-9-11-12-15,1-2-3-4-5-6-10-12-13-14,16-1-2-5-7-8-9-11-13-15,16-1-2-5-6-8-9-11-12-15,16-1-2-5-6-8-9-11-12-15,1-2-3-4-5-6-10-12-13-14,1-2-3-4-5-6-10-12-13-14
if (%.cnc.bk == 17) {
if (%.cnc.fg > 16) set %.cnc.bk $r(1,16)
else set %.cnc.bk $gettok($gettok(%.cnc.match,%.cnc.fg,44),$r(1,10),45)
}
if (%.cnc.bk == 18) set %.cnc.bk 17
if (%.cnc.fg == 17) {
if (%.cnc.bk > 16) set %.cnc.fg $r(1,16)
else set %.cnc.fg $gettok($gettok(%.cnc.match,%.cnc.bk,44),$r(1,10),45)
if ((%cnc.patt == 2) || (%cnc.patt == 5) || (%cnc.patt == 10)) set %.cnc.do $+ %.cnc.do
if (%cnc.attr == 2) set %.cnc.do $+ %.cnc.do
elseif (%cnc.attr == 3) set %.cnc.do $+ %.cnc.do
elseif (%cnc.attr == 4) set %.cnc.do $+ %.cnc.do
return %.cnc.do
}
; Super pattern generator
; FG BK IA NI [NA AL ... CL] ... NA [AL ...] TX
; FG = foreground (1-16, >16=pick randomly each use)
; BK = background (same)
; IA = initial attributes (b/u/r)
; NI = number of interweaves
; Each interweave-
; NA = number of attribute layers
; Each layer-
; AL = Attribute layer in 1.2.3.4.etc format (one code per token)
; CL = Character layer in 1.2.3.4.etc format
; NA = number of attribute layers
; Each layer-
; AL = Attribute layer in 1.2.3.4.etc format (one code per token)
; TX = Text to pattern, with for spaces
; Attribute layer codes- +## = set background to, ## = set foreground to, b = toggle bold, u = toggle underline, [+]##[bu] do both
; (## =1 or 2 digit, 0 = default) s = swap fg/bk, $ = null
; first token of attr layer - c = cycle through in order, p = ping pong start to end to start, r = pick randomly, s = stutter (advance 1 or 2 randomly) z = stutter ping pong o = cycle once then stay on last
; Character layer- first token ala attr layer, rest is just char(s) to interweave, use $ for null, for space
; Theoretically, each interweave layer is created using it's chars and attributes, then the main is created with one bit of each interweave
; layer (in order) before each character. NO ERROR CHECKING PERFORMED.
; example for simple random-color checkerboard-
; _spg 17 17 b 0 1 o.s Sampletext
; example for text that cycles ltgrey to black and back, randomly reversing, weaved with lines that cycle thru red colors, all w/a random cyan/white bk with underline 2 on 2 off
if (u isin $3) set %..ret | if (b isin $3) set %..ret %..ret
set %..s.fg -1 | set %..s.bk -1
set %..match 16-4-7-8-9-10-11-13-14-15,16-3-4-7-8-9-10-11-13-15,16-1-2-5-6-8-9-11-12-15,16-1-2-5-6-8-9-11-12-15,16-3-4-7-8-9-10-11-13-15,16-1-2-4-7-8-9-11-13-15,16-1-2-5-6-8-9-11-12-15,1-2-3-4-5-6-10-12-13-14,1-2-3-4-5-6-10-12-13-14,16-1-2-5-6-8-9-11-12-15,1-2-3-4-5-6-10-12-13-14,16-1-2-5-7-8-9-11-13-15,16-1-2-5-6-8-9-11-12-15,16-1-2-5-6-8-9-11-12-15,1-2-3-4-5-6-10-12-13-14,1-2-3-4-5-6-10-12-13-14
set %..pos 0
:rest
set %..outer $_i($4)
set %..parm 5
:outer
set %..inner $gettok($1-,%..parm,32)
inc %..parm
if (%..inner > 0) {
:inner
set %..layer $gettok($1-,%..parm,32)
_spg_bs %..parm
set %..tok $gettok(%..layer,%..tok,46)
if (u isin %..tok) set %..ret %..ret $+
if (b isin %..tok) set %..ret %..ret $+
if (s isin %..tok) { set %..c.tmp %..c.fg | set %..c.fg %..c.bk | set %..c.bk %..c.tmp }
set %..tok $remove($remove($remove(%..tok,u),b),s)
if (+ isin %..tok) {
set %..c.bk %..tok
if (%..c.bk == 0) set %..c.bk $2
}
elseif (%..tok isnum) { set %..c.fg %..tok | if (%..c.fg == 0) set %..c.fg $1 }
if ($_vd(..inner) > 0) goto inner
}
set %..layer $gettok($1-,%..parm,32)
if (%..outer == 1) { inc %..pos | set %..bit $mid(%..layer,%..pos,1) | if (%..bit == $null) return $_p2s(%..ret) | goto dobit }
else { _spg_bs %..parm | set %..bit $gettok(%..layer,%..tok,46) }
if (%..bit != $) {
:dobit
if (%..c.bk == 17) { if (%..c.fg > 16) set %..c.bk $r(1,16) | else set %..c.bk $gettok($gettok(%..match,%..c.fg,44),$r(1,10),45) }
if (%..c.fg == 17) set %..c.fg $gettok($gettok(%..match,%..c.bk,44),$r(1,10),45)
if (%..s.bk != %..c.bk) { set %..ret %..ret $+ $+ $calc(%..c.fg) $+ , $+ $calc(16 + %..c.bk) | set %..s.bk %..c.bk | set %..s.fg %..c.fg }
elseif (%..s.fg != %..c.fg) { set %..ret %..ret $+ $+ $calc(16 + %..c.fg) | set %..s.fg %..c.fg }
set %..ret %..ret $+ %..bit
}
if ($_vd(..outer) > 0) goto outer | goto rest
}
_spg_bs {
inc %..parm
set %..bit $left(%..layer,1)
if (%..bit == r) set %..tok $r(2,$_i($count(%..layer,.)))